Video data is generally processed and transferred in the form of bit streams. Rate control involves the process of allocating bits for a group of pictures, a picture, a slice or a macroblock. A desirable rate control scheme should maximize picture quality for a given bit-rate. There are three general types of rate control, including constant bit-rate (CBR), variable bit-rate (VBR) and exact bits. The length of a sequence may or may not be known. If it is known, one can achieve exact bits for the compressed stream, which can be useful for some storage applications. CBR can be used for constant bit-rate transmission channels, such as in broadcast, for example. CBR only requires a small buffer and is normally used in a push mode. VBR can be used for variable bandwidth channels, such as for digital video disk (DVD). VBR typically requires a large buffer and is normally used in a pull mode. Because any channel has a limited bandwidth, VBR has two parameters. One VBR parameter is maximum bit-rate, and the other is average bit-rate. The VBR maximum bit-rate is set for a channel, and the VBR average bit-rate is set for storage space.
Prior methods for rate control have included Test Model 5 (TM5) rate control. Unfortunately, such methods allowed the picture quality to vary too much between pictures and caused blocking within pictures. Embodiments of the present invention address these and other issues.